home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
mtools.lha
/
mtools-2.0.7
/
Configure
< prev
next >
Wrap
Text File
|
1992-09-10
|
6KB
|
177 lines
How to configure Mtools to your system...
1) Things you'll need to know.
The full path to the devices you want to use.
The number of tracks, heads, and sectors supported by each device.
5.25" 160k = 40 tracks, 1 head, and 8 sectors
5.25" 180k = 40 tracks, 1 head, and 9 sectors
5.25" 320k = 40 tracks, 2 heads, and 8 sectors
5.25" 360k = 40 tracks, 2 heads, and 9 sectors
5.25" 1.2m = 80 tracks, 2 heads, and 15 sectors
3.5" 720k = 80 tracks, 2 heads, and 9 sectors
3.5" 1.44m = 80 tracks, 2 heads, and 18 sectors
If you choose to use a hard disk partition as one of your devices,
then you may have to change the read/write permissions on that
partition.
2) The Makefile and msdos.h files
The following pre-processor variables are used in Mtools. They
should be set with "-Dvariable" in CFLAGS in the Makefile.
BSD for systems without System V style strings functions
or System V style utime().
INT16 Machines with 16 bit integers such as XENIX 286.
Pick one of the 3 following lock methods (if you have multiple
methods at your disposal, pick one in the following order). If
a method is not chosen, record locking will not be performed.
LOCKF XENIX3 and SVR3.2 lock method
FLOCK Berkeley lock method
FCNTL Alternate Berkeley lock method (may not work
on devices)
The folowing are pre-proccessor variables for the default device
setups for various flavors of Unix. Pick one of the these, or
create a new entry in the devices.c file.
ISC default devices for ISC's SVR3.2
UNIXPC default devices for AT&T Unix PC 7300/3B1
SPARC default devices for SunOS 4.1 on a SPARCstation
RT_ACIS default devices for 4.3BSD on an IBM RT
DELL default devices for Dell's SVR4 and Merge
XENIX default devices for Xenix systems.
SUN386 default devices for Sun's i386 machine
RT_ACIS default devices for IBM's BSD clone.
SPARC_ODD for reading odd-ball disks on a Sparc
There is a variable in msdos.h called SIG_TYPE which should be
configured to the "base" return type of signal();
The fat_read.c file has a preprocessor variable "CHK_FAT" that
can be undefined to turn off the fat encoding check if needed.
3) The devices "database" in devices.c
WARNING: The devices.c file, as distributed, has *NO* devices
defined. You *MUST* select from one of the examples or edit the
devices database yourself.
struct device {
char drive; /* the drive letter */
char *name; /* full path to device */
long offset; /* skip this many bytes */
int fat_bits; /* FAT encoding scheme */
int mode; /* any special open() flags */
int (*gioctl) (); /* gioctl() if needed */
int tracks; /* tracks */
int heads; /* heads */
int sectors; /* sectors */
};
drive the drive letter (in uppercase) that you want to associate
to this device.
name full path to the device. Shell expansion is done on the
name so things like $HOME/vpix/C: will work.
offset skip over a partition table. Useful for msdos disk "images"
such as those VP/ix uses.
fat_bits The encoding scheme for the File Allocation Table. Currently
supports only 12 and 16 bit FATs. Hard disks usually use
16 bit FATs, while all diskettes use 12 bit FATs.
mode any special open() mode flags (not normally used, except
in the AT&T Unixpc 7300/3b1).
gioctl any special ioctl() calls required after opening the device
(not normally used, except in the AT&T Unixpc 7300/3b1).
tracks the number of tracks supported by this device or zero if
this type of sanity checking is not required. Do NOT use
this field for hard disks or disk "images". Also used by
gioctl(), if present, as a default starting place.
heads the number of heads supported by this device or zero if
this type of sanity checking is not required.
sectors the number of sectors supported by this device or zero if
this type of sanity checking is not required.
If a device supports more than one disk capacity (1.2m and
360k), then you should place the most frequently used capacity
first. You may get an error message from the device driver when
the disk capacity doesn't match the device, but these can be
safely ignored.
4) Some example devices
for Interactive 386ix 2.0.2 with:
1.2m 5.25" as a: (supports 1.2m, 360k, and 320k)
1.44m 3.5" as b: (supports 1.44m, 720k)
hard disk partition as c:
vpix disk image as d:
user's vpix disk image as e:
{'A', "/dev/rdsk/f0q15dt", 0L, 12, 0, (int (*)()) 0, 80, 2, 15},
{'A', "/dev/rdsk/f0d9dt", 0L, 12, 0, (int (*)()) 0, 40, 2, 9},
{'A', "/dev/rdsk/f0d8dt", 0L, 12, 0, (int (*)()) 0, 40, 2, 8},
{'B', "/dev/rdsk/f13ht", 0L, 12, 0, (int (*)()) 0, 80, 2, 18},
{'B', "/dev/rdsk/f13dt", 0L, 12, 0, (int (*)()) 0, 80, 2, 9},
{'C', "/dev/rdsk/0p1", 0L, 16, 0, (int (*)()) 0, 0, 0, 0},
{'D', "/usr/vpix/defaults/C:", 8704L, 12, 0, (int (*)()) 0, 0, 0, 0},
{'E', "$HOME/vpix/C:", 8704L, 12, 0, (int (*)()) 0, 0, 0, 0},
{'\0', (char *) NULL, 0L, 0, 0, (int (*)()) 0, 0, 0, 0}
for AT&T Unixpc 7300/3b1 with:
360k 5.25" as a: (supports 360k, and 320k, 180k, 160k)
DOS73 disk image as c:
{'A', "/dev/rfp020", 0L, 12, O_NDELAY, init_unixpc, 40, 2, 9},
{'C', "/usr/bin/DOS/dvd000", 0L, 12, 0, (int (*)()) 0, 0, 0, 0},
{'\0', (char *) NULL, 0L, 0, 0, (int (*)()) 0, 0, 0, 0}
for Sun SparcStation with:
1.44m 3.5" as a: (supports 1.44m and 720k)
{'A', "/dev/rfd0c", 0L, 12, 0, (int (*)()) 0, 80, 2, 18},
{'A', "/dev/rfd0c", 0L, 12, 0, (int (*)()) 0, 80, 2, 9},
{'\0', (char *) NULL, 0L, 0, 0, (int (*)()) 0, 0, 0, 0}
Note that the two devices are actually the same physical
device, and that only the number of sectors are
different.
for Dell's SVR4 with:
5.25" 1.2m, 360k and 320k as a:
3.5" 1.44m, 720k as b:
dos partition as c:
{'A', "/dev/rdsk/f0q15dt", 0L, 12, 0, (int (*) ()) 0, 80, 2, 15},
{'A', "/dev/rdsk/f0d9dt", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},
{'A', "/dev/rdsk/f0d8dt", 0L, 12, 0, (int (*) ()) 0, 40, 2, 8},
{'B', "/dev/rdsk/f13ht", 0L, 12, 0, (int (*) ()) 0, 80, 2, 18},
{'B', "/dev/rdsk/f13dt", 0L, 12, 0, (int (*) ()) 0, 80, 2, 9},
{'C', "/dev/rdsk/dos", 0L, 16, 0, (int (*) ()) 0, 0, 0, 0},
{'\0', (char *) NULL, 0L, 0, 0, (int (*)()) 0, 0, 0, 0}